package studio.raptor.hub.common.dto;

import java.util.Arrays;

/**
 * 事件元信息
 *
 * @author jack
 * @since 1.0
 */
public class EventMeta {

  //业务动作
  private String objectKey;

  private Long regionId;

  /**
   * 产品规格ID和业务动作ID的对应关系，具体格式如下：<br> prodSpecId1:业务动作Id1,prodSpecId1:业务动作Id2,prodSpecID2:业务动作ID3
   */
  private String prodIds;

  /**
   * 销售品ID与业务动作ID的对应关系，具体格式如下：<br> offerSpecId1:业务动作Id1,offerSpecId1:业务动作Id2,offerSpecID2:业务动作ID3
   */
  private String offerIds;

  /**
   * 销售品规格属性与业务动作的对应关系<br> offerSpecAttr1：业务动作id1，offerSpecAttr1：业务动作id2，offerSpecAttr2：业务动作id3
   */
  private String offerSpecAttrs;

  /**
   * 服务规格和业务动作对应关系，具体格式如下<br> serviceSpecId1:业务动作id1,serviceSpecId1:业务动作id2,serviceSpecId2:业务动作id3
   */
  private String serviceOfferIds;

  /**
   * 服务规格属性与业务动作对应关系，具体格式如下<br> serviceSpecAttr1:业务动作id1,serviceSpecAttr1:业务动作id2,serviceSpecAttr2:业务动作id3
   */
  private String serviceSpecAttrs;

  /**
   * 销售品关联所有产品ID,元素为产品ID
   */
  private Long[] offerProdId;

  /**
   * 业务动作，多个值之间用英文模式下的逗号进行分隔，如<br> orderTypeID1,orderTypeID2
   */
  private String orderTypeIds;
  /**
   * 客户ID
   */
  private Long[] custId;
  /**
   * 账户ID
   */
  private Long[] acctId;
  /**
   * 产品ID
   */
  private Long[] prodInstId;

  /**
   * 销售品ID
   */
  private Long[] offerInstId;

  /**
   * 受理中心报文
   */
  private String content;

  public String getObjectKey() {
    return objectKey;
  }

  public void setObjectKey(String objectKey) {
    this.objectKey = objectKey;
  }

  public Long getRegionId() {
    return regionId;
  }

  public void setRegionId(Long regionId) {
    this.regionId = regionId;
  }

  public String getProdIds() {
    return prodIds;
  }

  public void setProdIds(String prodIds) {
    this.prodIds = prodIds;
  }

  public String getOfferIds() {
    return offerIds;
  }

  public void setOfferIds(String offerIds) {
    this.offerIds = offerIds;
  }

  public String getOfferSpecAttrs() {
    return offerSpecAttrs;
  }

  public void setOfferSpecAttrs(String offerSpecAttrs) {
    this.offerSpecAttrs = offerSpecAttrs;
  }

  public String getServiceOfferIds() {
    return serviceOfferIds;
  }

  public void setServiceOfferIds(String serviceOfferIds) {
    this.serviceOfferIds = serviceOfferIds;
  }

  public String getServiceSpecAttrs() {
    return serviceSpecAttrs;
  }

  public void setServiceSpecAttrs(String serviceSpecAttrs) {
    this.serviceSpecAttrs = serviceSpecAttrs;
  }

  public Long[] getOfferProdId() {
    return offerProdId;
  }

  public void setOfferProdId(Long[] offerProdId) {
    this.offerProdId = offerProdId;
  }

  public String getOrderTypeIds() {
    return orderTypeIds;
  }

  public void setOrderTypeIds(String orderTypeIds) {
    this.orderTypeIds = orderTypeIds;
  }

  public Long[] getCustId() {
    return custId;
  }

  public void setCustId(Long[] custId) {
    this.custId = custId;
  }

  public Long[] getAcctId() {
    return acctId;
  }

  public void setAcctId(Long[] acctId) {
    this.acctId = acctId;
  }

  public Long[] getProdInstId() {
    return prodInstId;
  }

  public void setProdInstId(Long[] prodInstId) {
    this.prodInstId = prodInstId;
  }

  public Long[] getOfferInstId() {
    return offerInstId;
  }

  public void setOfferInstId(Long[] offerInstId) {
    this.offerInstId = offerInstId;
  }

  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  @Override
  public String toString() {
    return "EventMeta{" +
        "objectKey='" + objectKey + '\'' +
        ", regionId=" + regionId +
        ", prodIds='" + prodIds + '\'' +
        ", offerIds='" + offerIds + '\'' +
        ", offerSpecAttrs='" + offerSpecAttrs + '\'' +
        ", serviceOfferIds='" + serviceOfferIds + '\'' +
        ", serviceSpecAttrs='" + serviceSpecAttrs + '\'' +
        ", offerProdId=" + Arrays.toString(offerProdId) +
        ", orderTypeIds='" + orderTypeIds + '\'' +
        ", custId=" + Arrays.toString(custId) +
        ", acctId=" + Arrays.toString(acctId) +
        ", prodInstId=" + Arrays.toString(prodInstId) +
        ", offerInstId=" + Arrays.toString(offerInstId) +
        ", content='" + content + '\'' +
        '}';
  }
}
